package com.yl.ydk.api

import com.yl.ydk.base.Constant
import com.yl.ydk.bean.*
import com.yl.ydk.bean.body.GoodsDetailBody
import okhttp3.MultipartBody
import okhttp3.RequestBody
import retrofit2.http.*
import rx.Observable


interface ApiService {

    /**
    登录接口
     */
    @POST(Constant.LOGIN)
    fun getLogin(@QueryMap map: Map<String, String>): Observable<UserInfoBean>?

    /**
    发送验证码
     */
    @POST(Constant.SENDSMSCODE)
    fun getSendSmsCode(@QueryMap map: Map<String, String>): Observable<SendSmsCodeBean>?

    /**
    单文件上传(base64)
     */
    @POST(Constant.BASE64UPLOAD)
    fun getBase64Upload(@Body requestBody: MultipartBody): Observable<Base64UploadBean>?

    /**
    设置用户资料
     */
    @POST(Constant.SAVEUSER)
    fun getSaveUser(@QueryMap map: Map<String, String>): Observable<SaveUserBean>?

    /**
    视频分类
     */
    @GET(Constant.VIDEOCATEGORIES)
    fun getVideoCategories(@QueryMap map: Map<String, String>): Observable<VideoCategoriesBean>?

    /**
    视频列表
     */
    @POST(Constant.VIDEOLIST)
    fun getVideoList(@QueryMap map: Map<String, String>): Observable<VideoListBean>?

    /**
    获取疾病分类
     */
    @GET(Constant.HEALTHGETDISEASECATE)
    fun getHealthGDiseaseCate(@QueryMap map: Map<String, String>): Observable<DiseaseCateBean>?

    /**
    商品列表
     */
    @POST(Constant.GOODSLIST)
    fun getGoodsList(@QueryMap map: Map<String, String>): Observable<GoodsListBean>?

    /**
    商品详情
     */
    @POST(Constant.GOODSDETAIL)
    fun getGoodsDetail(@Body boby: GoodsDetailBody): Observable<GoodsDetailBean>?

    /**
    获取疾病详情
     */
    @GET(Constant.GETDISEASEDETAIL)
    fun getGetDiseaseDetail(@QueryMap map: Map<String, String>): Observable<DiseaseDetailBean>?

    /**
    搜索疾病列表
     */
    @POST(Constant.GETDISEASELIST)
    fun getGetDiseaseList(@QueryMap map: Map<String, String>): Observable<DiseaseSearchBean>?

    /**
    文章列表
     */
    @POST(Constant.SITEARTICLE)
    fun getSiteAricle(@QueryMap map: Map<String, String>): Observable<SiteAricleBean>?

    /**
    获取文章详情
     */
    @POST(Constant.SITEARTICLEDETAIL)
    fun getSiteAricleDetail(@QueryMap map: Map<String, String>): Observable<SiteAricleDetailBean>?

    /**
    健康自测分类
     */
    @Headers("Level:V2")
    @GET(Constant.HEALTHTESTCATEGORY)
    fun getHealthtestCategory(@QueryMap map: Map<String, String>): Observable<HealthtestCategoryBean>?

    /**
    获取所有问卷
     */
    @Headers("Level:V2")
    @POST(Constant.TESTPAPERS)
    fun getTestPapers(@Body boby: RequestBody): Observable<TestPapersBean>?

    /**
    题目自测选项
     */
    @Headers("Level:V2")
    @POST(Constant.HEALTHTESTQUESTION)
    fun getHealthtestQuestion(@Body boby: RequestBody): Observable<HealthtestQuestionBean>?

    /**
    提交测试
     */
    @Headers("Level:V2")
    @POST(Constant.TESTFINISH)
    fun getTestFinish(@Body boby: RequestBody): Observable<TestFinishBean>?

    /**
    直播视频列表
     */
    @POST(Constant.LIVELIST)
    fun getLiveList(): Observable<LiveListBean>?

    /**
    直播详情
     */
    @GET(Constant.LIVEDETAIL)
    fun getLiveDetail(@QueryMap map: Map<String, String>): Observable<LiveDetailBean>?


}


